package com.luyou.framework.mybatis.core.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.toolkit.Db;

import java.util.Collection;

/**
 * 在 MyBatis Plus 的 BaseMapper 的基础上拓展，提供更多的能力
 * @author luyou
 * @version 1.0
 * @date 2024/7/6 20:44
 * @desc
 */
public interface BaseMapperX <T> extends BaseMapper<T> {

    /**
     * 批量插入，适合大量数据插入
     *
     * @param entities 实体们
     */
    default Boolean insertBatch(Collection<T> entities) {
        return Db.saveBatch(entities);
    }

    /**
     * 批量插入，适合大量数据插入
     *
     * @param entities 实体们
     * @param size     插入数量 Db.saveBatch 默认为 1000
     */
    default Boolean insertBatch(Collection<T> entities, int size) {
        return Db.saveBatch(entities, size);
    }

    default Boolean updateBatchById(Collection<T> entities, int size) {
        return Db.updateBatchById(entities, size);
    }

    default Boolean updateBatchById(Collection<T> entities) {
        return Db.updateBatchById(entities);
    }
}
